package com.manage.platform.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * YWD
 * 2025/9/18
 */
@Accessors(chain = true)
@Data
public class UserExcel implements Serializable {

    @Schema(description = "ID")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "角色")
    @ExcelProperty("角色")
    private String roleName;

    @Schema(description = "职称")
    @ExcelProperty("职称")
    private String professionalName;

    @Schema(description = "岗位")
    @ExcelProperty("岗位")
    private String positionName;

    @Schema(description = "所属部门")
    @ExcelProperty("所属部门")
    private String departmentName;

    @Schema(description = "用户名(账号)")
    @ExcelProperty("用户名(账号)")
    private String userName;

    @Schema(description = "真实姓名")
    @ExcelProperty("真实姓名")
    private String realName;

    @Schema(description = "性别(0=未知,1=男,2=女)")
    @ExcelProperty("性别(0=未知,1=男,2=女)")
    private Integer gender = 0;

    @Schema(description = "教职工工号")
    @ExcelProperty("教职工工号")
    private String employeeId;

    @Schema(description = "出生日期")
    @ExcelProperty("出生日期")
    private String birthDate;

    @Schema(description = "入职日期")
    @ExcelProperty("入职日期")
    private String joinDate;

    @Schema(description = "学历")
    @ExcelProperty("学历")
    private String education;

    @Schema(description = "学位")
    @ExcelProperty("学位")
    private String degree;

    @Schema(description = "手机号")
    @ExcelProperty("手机号")
    private String phone;

    @Schema(description = "身份证号")
    @ExcelProperty("身份证号")
    private String idCard;

    @Schema(description = "电子邮箱")
    @ExcelProperty("电子邮箱")
    private String email;

    /* =============== 扩展信息 =============== */
    @Schema(description = "政治面貌")
    @ExcelProperty("政治面貌")
    private String political;

    @Schema(description = "民族")
    @ExcelProperty("民族")
    private String nation;

    @Schema(description = "专业领域")
    @ExcelProperty("专业领域")
    private String professionalField;

    @Schema(description = "人员类别")
    @ExcelProperty("人员类别")
    private String personnelType;

    @Schema(description = "是否拥有高校教师资格证书(0=否,1=是)")
    @ExcelProperty("是否拥有高校教师资格证书(0=否,1=是)")
    private Integer isUniversityCertificate = 0;

    @Schema(description = "专业技术职务")
    @ExcelProperty("专业技术职务")
    private String technicalPosition;

    @Schema(description = "职业资格证书名称")
    @ExcelProperty("职业资格证书名称")
    private String professionalCertificate;

    @Schema(description = "是否为专业教师(0=否,1=是)")
    @ExcelProperty("是否为专业教师(0=否,1=是)")
    private Integer isProfessionalTeacher = 0;

    @Schema(description = "是否为公共课教师(0=否,1=是)")
    @ExcelProperty("是否为公共课教师(0=否,1=是)")
    private Integer isPublicTeacher = 0;

    @Schema(description = "所任公共课程")
    @ExcelProperty("所任公共课程")
    private String publicCourse;

    @Schema(description = "是否为双师型教师(0=否,1=是)")
    @ExcelProperty("是否为双师型教师(0=否,1=是)")
    private Integer isDoubleTeacher = 0;

    @Schema(description = "教学名师等级")
    @ExcelProperty("教学名师等级")
    private String teacherMasterLevel;

    @Schema(description = "是否专职思政课教师(0=否,1=是)")
    @ExcelProperty("是否专职思政课教师(0=否,1=是)")
    private Integer isSpecialPoliticalTeacher = 0;

    @Schema(description = "是否兼职思政课教师(0=否,1=是)")
    @ExcelProperty("是否兼职思政课教师(0=否,1=是)")
    private Integer isPartPoliticalTeacher = 0;

    @Schema(description = "是否专职辅导员(0=否,1=是)")
    @ExcelProperty("是否专职辅导员(0=否,1=是)")
    private Integer isSpecialInstructor = 0;

    @Schema(description = "是否兼职辅导员(0=否,1=是)")
    @ExcelProperty("是否兼职辅导员(0=否,1=是)")
    private Integer isPartInstructor = 0;

    @Schema(description = "是否专职心理健康教师(0=否,1=是)")
    @ExcelProperty("是否专职心理健康教师(0=否,1=是)")
    private Integer isSpecialPsychology = 0;

    @Schema(description = "是否兼职心理健康教师(0=否,1=是)")
    @ExcelProperty("是否兼职心理健康教师(0=否,1=是)")
    private Integer isPartPsychology = 0;

    @Schema(description = "是否为专业带头人(0=否,1=是)")
    @ExcelProperty("是否为专业带头人(0=否,1=是)")
    private Integer isMajorHead = 0;

    @Schema(description = "备注信息")
    @ExcelProperty("备注信息")
    private String remark;

    @Schema(description = "状态(0=离职,1=在职,2=待岗)")
    @ExcelProperty("状态(0=离职,1=在职,2=待岗)")
    private Integer status = 1;

}
